package cn.tannn.tcache.command.list;

import cn.tannn.tcache.core.Command;
import cn.tannn.tcache.core.Reply;
import cn.tannn.tcache.core.Tcache;

/**
 * 获取列表指定范围内的元素 （0开始
 * <p> lrange key start stop
 *
 * @author <a href="https://t.tannn.cn/">tan</a>
 * @date 2024/6/20 上午10:01
 */
public class LrangeCommand implements Command {
    @Override
    public String name() {
        return "LRANGE";
    }

    @Override
    public Reply<?> exec(Tcache cache, String[] args) {
        String key = getKey(args);
        try {
            String[] params = getParamsNoKey(args);
            int start = Integer.parseInt(params[0]);
            int stop = Integer.parseInt(params[1]);
            return Reply.array(cache.lrange(key, start, stop));
        } catch (Exception e) {
            return Reply.array(null);
        }
    }
}
